package org.base23.video.service;

import org.base23.video.domain.dto.DetailedPostureAnalysis;
import org.base23.video.domain.dto.VideoAnalysisResult;

import java.util.List;

/**
 * 详细姿势分析服务接口
 */
public interface DetailedPostureAnalysisService {
    
    /**
     * 执行详细的姿势分析
     * @param sportType 运动类型
     * @param videoAnalysisData 视频分析数据
     * @return 详细分析结果
     */
    DetailedPostureAnalysis performDetailedAnalysis(String sportType, VideoAnalysisResult.VideoAnalysisData videoAnalysisData);
    
    /**
     * 分析运动阶段
     * @param sportType 运动类型
     * @param videoAnalysisData 视频分析数据
     * @return 运动阶段列表
     */
    List<DetailedPostureAnalysis.MovementPhase> analyzeMovementPhases(String sportType, VideoAnalysisResult.VideoAnalysisData videoAnalysisData);
    
    /**
     * 生成个性化教练指导
     * @param sportType 运动类型
     * @param videoAnalysisData 视频分析数据
     * @return 个性化指导
     */
    DetailedPostureAnalysis.PersonalizedCoaching generatePersonalizedCoaching(String sportType, VideoAnalysisResult.VideoAnalysisData videoAnalysisData);
    
    /**
     * 分析生物力学特征
     * @param videoAnalysisData 视频分析数据
     * @return 生物力学分析
     */
    DetailedPostureAnalysis.BiomechanicsAnalysis analyzeBiomechanics(VideoAnalysisResult.VideoAnalysisData videoAnalysisData);
} 